commonlibsse_ng\re\i/
IMessageBoxCallback.rs

1use crate::re::BSIntrusiveRefCounted::BSIntrusiveRefCounted;
2use crate::re::offsets_rtti::RTTI_IMessageBoxCallback;
3use crate::re::offsets_vtable::VTABLE_IMessageBoxCallback;
4use crate::rel::id::VariantID;
5
6#[derive(Debug)]
7#[repr(C)]
8pub struct IMessageBoxCallback {
9    pub vtable: *const IMessageBoxCallbackVtbl,
10    pub __base: BSIntrusiveRefCounted, // 0x000
11    pub unk0C: u32,
12}
13const _: () = assert!(core::mem::size_of::<IMessageBoxCallback>() == 0x10);
14
15impl IMessageBoxCallback {
16    /// Address & Offset of the runtime type information (RTTI) identifier.
17    pub const RTTI: VariantID = RTTI_IMessageBoxCallback;
18
19    /// Address & Offset of the virtual function table.
20    pub const VTABLE: [VariantID; 1] = VTABLE_IMessageBoxCallback;
21}
22
23/// The virtual function table for `INIPrefSettingCollection`.
24///
25/// This struct defines function pointers to simulate the C++ virtual functions.
26#[repr(C)]
27pub struct IMessageBoxCallbackVtbl {
28    /// - C++ destructor: `~IMessageBoxCallback`
29    pub CxxDrop: fn(this: *mut IMessageBoxCallback), // 0x0
30    pub Run: fn(this: *mut IMessageBoxCallback, msg: Message), // 0x1
31}
32
33#[commonlibsse_ng_derive_internal::ffi_enum]
34#[repr(C)]
35#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
36pub enum Message {
37    Unk0 = 0,
38    Unk1 = 1,
39    Unk2 = 2,
40}